home *** CD-ROM | disk | FTP | other *** search
- /***********
- *
- * setvmode.c
- */
-
- #include <egb.h>
- #include <stdio.h>
- #include <stdlib.h>
-
- char work[1536];
- unsigned char para[512] = {
- 15,0,0,0,
- 1,0,0,0, 255, 0, 0, 0,
- 2,0,0,0, 0, 255, 0, 0,
- 3,0,0,0, 255, 255, 0, 0,
- 4,0,0,0, 0, 0, 255, 0,
- 5,0,0,0, 255, 0, 255, 0,
- 6,0,0,0, 0, 255, 255, 0,
- 7,0,0,0, 255, 255, 255, 0,
- 8,0,0,0, 255, 255, 255, 0,
- 9,0,0,0, 255, 0, 0, 0,
- 10,0,0,0, 0, 255, 0, 0,
- 11,0,0,0, 255, 255, 0, 0,
- 12,0,0,0, 0, 0, 255, 0,
- 13,0,0,0, 255, 0, 255, 0,
- 14,0,0,0, 0, 255, 255, 0,
- 15,0,0,0, 255, 255, 255, 0
- };
-
- void main(int argc, char **argv)
- {
- int mode = 3, mode2 = 3, err = 0;
-
- EGB_init(work,1536);
- if (argc > 1) {
- mode = atoi(argv[1]);
- if (mode < 1) {
- mode = 3;
- }
- EGB_resolution(work, 0, mode);
- if (mode <12) {
- if (argc > 2) {
- mode2 = atoi(argv[2]);
- if (mode2 < 1) {
- mode2 = 3;
- }
- }
- else {
- mode2 = mode;
- }
- switch (mode) {
-
- case 1:
- if (mode2 != 1) {
- err = 1;
- }
- break;
- case 2:
- if (mode2 != 2) {
- err = 1;
- }
- break;
- case 3:
- case 5:
- case 10:
- if ((mode2 != 3) && (mode2 != 5) && (mode2 != 10)) {
- err = 1;
- }
- break;
- case 4:
- case 6:
- if ((mode2 != 4) && (mode2 != 6)) {
- err = 1;
- }
- break;
- case 7:
- case 9:
- if ((mode2 != 7) && (mode2 != 9)) {
- err = 1;
- }
- break;
- case 8:
- case 11:
- if ((mode2 != 8) && (mode2 != 11)) {
- err = 1;
- }
- break;
- }
-
- if (err > 0) {
- puts("画面設定に誤りがあります。 両画面同じモードに設定します。");
- mode2 = mode;
- }
- EGB_resolution(work, 1, mode2);
- }
- }
- if (mode <= 4) {
- EGB_writePage(work, 0);
- EGB_palette(work, 1, (char *)para);
- }
- if (mode2 <= 4) {
- EGB_writePage(work, 1);
- EGB_palette(work, 1, (char *)para);
- EGB_writePage(work, 0);
- }
- puts("\x1b*");
-
- }
-